package sicnu.cs.ich.api.domain.form;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.*;
import java.io.Serializable;

/**
 * @author 沈洋 邮箱:1845973183@qq.com
 * @create 2021/12/12-21:16
 **/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class IchForm implements Serializable {

    /**
     * 主键id
     */
    private Integer id;
    /**
     * 类型id
     */
    @NotNull(message = "类型ID不能为空")
    private Integer typeId;
    /**
     * 类型号数
     */
    @NotBlank(message = "类型号数不能为空")
    private String num;
    /**
     * 非遗单品名
     */
    @NotBlank(message = "非遗名称不能为空")
    private String name;
    /**
     * 项目号
     */
    @NotBlank(message = "项目编号不能为空")
    private String projectNum;
    /**
     * 批次
     */
    @NotNull(message = "批次不能为空")
    private Integer lot;
    /**
     * 省份
     */
    @NotBlank(message = "省编号不能为空")
    private String province;
    /**
     * 城市
     */
    @NotBlank(message = "城市编号不能为空")
    private String city;
    /**
     * 地区
     */
    @NotBlank(message = "地区编号不能为空")
    private String area;
    /**
     * 地址
     */
    private String address;
    /**
     * 保护单位
     */
    @NotBlank(message = "保护单位不能为空")
    private String protectUnit;
    /**
     * 非遗详情
     */
    @NotBlank(message = "非遗详情不能为空")
    private String content;
    /**
     * 非遗级别
     */
    @NotNull(message = "非遗级别不能为空")
    @Max(value = 2)
    @Min(value = 1)
    private Integer level;
    /**
     * 词云(词云1|词云2|词云3...)
     */
    @Size(max = 10,min = 1)
    private String[] features;
    /**
     * 保护者
     */
    private String protector;
    /**
     * 特色
     */
    private String characteristic;

    public String getFeatures() {
        StringBuilder featuresStr = new StringBuilder();
        for (int i = 0; i < this.features.length-1; i++) {
            featuresStr.append(features[i]).append("|");
        }
        featuresStr.append(features[features.length-1]);
        return featuresStr.toString();
    }
}
